fix: make asynchronous viewer actions accessible and nested-safe - #264
fix: make asynchronous viewer actions accessible and nested-safe#264seonghobae wants to merge 86 commits into
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
|
@coderabbitai review @opencode-agent @cwl-noema-review Please independently review exact current head |
|
I will check the busy-state contract, DOM and ARIA restoration, accessible names, test coverage, and required repository checks. I will not approve the pull request until the exact-head checks and required protections are complete and clean.
|
|
@coderabbitai review |
|
@opencode-agent Please independently review exact current head |
|
|
@cwl-noema-review Please independently review exact current head |
|
@coderabbitai review @opencode-agent @cwl-noema-review Please independently review exact current head |
|
|
|
@opencode-agent @cwl-noema-review Please independently review exact current head |
|
@coderabbitai review @opencode-agent @cwl-noema-review Please independently review exact current head |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
expected='734a72686f5671f757cd9f2a6e1fec0ecc93d1fe'
printf '%s\n' '== Local commit and changed files =='
git rev-parse HEAD
git diff --name-status "${expected}^" "${expected}"
git diff --stat "${expected}^" "${expected}"
printf '%s\n' '== JavaScript and build/workflow candidates =='
fd -t f . | rg '(^|/)(dom-utils\.js|.*dom.*test.*\.(js|mjs|cjs)|pom\.xml|CHANGELOG.*|.*journal.*|.*accessib.*|.*\.ya?ml)$' || true
printf '%s\n' '== Source outlines =='
while IFS= read -r f; do
case "$f" in
*.js|*.mjs|*.cjs)
echo "--- $f"
ast-grep outline "$f" --items all || true
;;
esac
done < <(git diff --name-only "${expected}^" "${expected}" | rg '\.(js|mjs|cjs)$' || true)
printf '%s\n' '== Changed diff =='
git diff --find-renames --find-copies "${expected}^" "${expected}"
printf '%s\n' '== GitHub PR, checks, and protection metadata =='
gh pr view 264 --repo ContextualWisdomLab/clearfolio --json number,headRefOid,baseRefName,state,isDraft,mergeStateStatus,reviewDecision,statusCheckRollup,url
gh api 'repos/ContextualWisdomLab/clearfolio/commits/734a72686f5671f757cd9f2a6e1fec0ecc93d1fe/check-runs?per_page=100' \
--jq '.check_runs[] | [.name,.status,.conclusion,.details_url] | `@tsv`' || true
gh api 'repos/ContextualWisdomLab/clearfolio/branches/main/protection' || trueLength of output: 2177 🏁 Script executed: #!/bin/bash
set -u
repo='ContextualWisdomLab/clearfolio'
sha='734a72686f5671f757cd9f2a6e1fec0ecc93d1fe'
echo '== Pull request metadata =='
gh pr view 264 --repo "$repo" --json number,headRefOid,baseRefName,baseRefOid,state,isDraft,mergeStateStatus,reviewDecision,statusCheckRollup,url || true
echo '== Pull request file list =='
gh pr diff 264 --repo "$repo" --name-only || true
echo '== Merge base and full pull request changed files =='
base="$(git merge-base HEAD origin/main 2>/dev/null || true)"
printf 'merge-base=%s\n' "$base"
if [ -n "$base" ]; then
git diff --name-status "$base" HEAD
fi
echo '== dom-utils.js outline and content =='
ast-grep outline src/main/resources/static/assets/viewer/dom-utils.js --items all || true
nl -ba src/main/resources/static/assets/viewer/dom-utils.js | sed -n '1,320p' || true
echo '== Node DOM test content =='
nl -ba src/test/js/dom-utils.test.mjs | sed -n '1,420p' || true
echo '== Maven Node test and coverage configuration =='
rg -n -C 12 'dom-utils|node|coverage|nyc|c8|exec-maven|frontend' pom.xml || true
echo '== CI Node setup configuration =='
nl -ba .github/workflows/ci.yml | sed -n '1,260p' || true
echo '== Production consumers and accessible action labels =='
rg -n -C 8 'setBusy|busy|Details|Status JSON|Open viewer|aria-label|disabled' src/main/resources/static || true
echo '== Changelog and accessibility documentation changes from merge base =='
if [ -n "$base" ]; then
git diff --unified=40 "$base" HEAD -- CHANGELOG.md docs || true
fiLength of output: 45940 🏁 Script executed: #!/bin/bash
set -u
repo='ContextualWisdomLab/clearfolio'
base='8e2d36f260395dbd0304abc503d8bd15ffcf8dab'
head='734a72686f5671f757cd9f2a6e1fec0ecc93d1fe'
echo '== Complete helper implementation =='
sed -n '1,180p' src/main/resources/static/assets/viewer/dom-utils.js || true
echo '== Complete executable Node DOM test =='
sed -n '1,460p' src/test/js/dom-utils.test.mjs || true
echo '== Relevant production consumer implementation =='
sed -n '100,155p' src/main/resources/static/assets/viewer/demo.js || true
sed -n '250,520p' src/main/resources/static/assets/viewer/demo.js || true
echo '== Complete CI workflow =='
sed -n '1,300p' .github/workflows/ci.yml || true
echo '== Focused base-to-head diffs =='
git diff --check "$base" "$head" || true
git diff --unified=20 "$base" "$head" -- \
.github/workflows/ci.yml pom.xml \
src/main/resources/static/assets/viewer/demo.js \
src/main/resources/static/assets/viewer/dom-utils.js \
src/test/js/dom-utils.test.mjs || true
echo '== Pin format checks =='
rg -n -P 'uses:\s*actions/setup-node@|node-version:|node-version-file:' .github/workflows/ci.yml || true
echo '== Required reviews and branch protection =='
gh pr view 264 --repo "$repo" --json latestReviews,reviewRequests,reviewDecision,mergeStateStatus || true
gh api "repos/$repo/branches/main/protection" || true
gh api "repos/$repo/rules/branches/main" || trueLength of output: 57297
Blocking finding: Apply I verified the shared WeakMap helper, exact DOM/ARIA restoration, node identity preservation, inert text handling, Node 24 full-SHA pin, Maven coverage thresholds, and successful exact-head checks. I did not approve because this blocker remains. GitHub also reports You are interacting with an AI system. |
This branch has been superseded by a cleaner replacement PR (#264). No further work will be performed on this branch.
|
@coderabbitai review @opencode-agent @cwl-noema-review Please independently review exact current head |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
repo='ContextualWisdomLab/clearfolio'
sha='347203d5dc7b6bd4a53877f322bbaba28acb527f'
echo '== Exact head and PR metadata =='
printf 'local HEAD: '; git rev-parse HEAD
git show -s --format='commit: %H%nparents: %P%nsubject: %s' "$sha"
gh pr view 264 --repo "$repo" \
--json number,url,state,isDraft,headRefOid,baseRefName,baseRefOid,mergeStateStatus,reviewDecision,statusCheckRollup,latestReviews
echo '== Pull request diff summary =='
base="$(git merge-base "$sha" origin/main)"
printf 'merge-base: %s\n' "$base"
git diff --check "$base" "$sha"
git diff --name-status "$base" "$sha"
echo '== Relevant source outlines =='
ast-grep outline src/main/resources/static/assets/viewer/dom-utils.js --items all
ast-grep outline src/main/resources/static/assets/viewer/demo.js --items all
ast-grep outline src/test/js/dom-utils.test.mjs --items all
echo '== Busy helper =='
nl -ba src/main/resources/static/assets/viewer/dom-utils.js | sed -n '1,260p'
echo '== Viewer consumers and accessible labels =='
rg -n -C 10 -P '\b(setBusyState|openJsonDocument|openViewer|Details|Status JSON|Open viewer|aria-label|aria-busy|disabled)\b' \
src/main/resources/static/assets/viewer/demo.js
echo '== DOM helper tests and test-double semantics =='
rg -n -C 10 -P '(textContent|childNodes|replaceChildren|setBusyState|nested|restore|aria-busy|aria-label|disabled)' \
src/test/js/dom-utils.test.mjs
echo '== Maven test and coverage configuration =='
rg -n -C 12 -P '(dom-utils|node|c8|coverage|line|branch|function|exec-maven)' pom.xml
echo '== Node setup pin =='
rg -n -C 4 -P '(actions/setup-node@|node-version:)' .github/workflows/ci.yml
echo '== Documentation changes =='
git diff --unified=20 "$base" "$sha" -- CHANGELOG.md docs
echo '== Exact-commit checks =='
gh api "repos/$repo/commits/$sha/check-runs?per_page=100" --paginate \
--jq '.check_runs[] | [.name, .status, .conclusion, .details_url] | `@tsv`'
echo '== Branch protection and rules =='
gh api "repos/$repo/branches/main/protection" || true
gh api "repos/$repo/rules/branches/main" || trueLength of output: 15907 🏁 Script executed: #!/bin/bash
set -euo pipefail
repo='ContextualWisdomLab/clearfolio'
sha='347203d5dc7b6bd4a53877f322bbaba28acb527f'
base='8e2d36f260395dbd0304abc503d8bd15ffcf8dab'
echo '== Helper implementation =='
sed -n '1,180p' src/main/resources/static/assets/viewer/dom-utils.js
echo '== Async viewer actions =='
sed -n '75,150p' src/main/resources/static/assets/viewer/demo.js
sed -n '220,310p' src/main/resources/static/assets/viewer/demo.js
echo '== DOM helper tests =='
sed -n '1,360p' src/test/js/dom-utils.test.mjs
echo '== Integration test and DOM double =='
sed -n '1,420p' src/test/js/demo-integration.test.mjs
echo '== Maven Node test and coverage gate =='
grep -n -E -C 12 'dom-utils|node|c8|coverage|line|branch|function|exec-maven' pom.xml || true
echo '== CI Node setup =='
grep -n -E -C 4 'actions/setup-node@|node-version:' .github/workflows/ci.yml || true
echo '== Exact relevant diff =='
git diff --check "$base" "$sha"
git diff --unified=30 "$base" "$sha" -- \
.github/workflows/ci.yml pom.xml CHANGELOG.md .jules/palette.md \
src/main/resources/static/assets/viewer/demo.js \
src/main/resources/static/assets/viewer/dom-utils.js \
src/test/js/dom-utils.test.mjs src/test/js/demo-integration.test.mjs
echo '== Current exact-head check states =='
gh api "repos/$repo/commits/$sha/check-runs?per_page=100" --paginate \
--jq '.check_runs[] | select(.name == "strix" or .name == "Maven test" or .name == "Semgrep (multi-language SAST)" or .name == "osv-scan" or .name == "fuzz (ArtifactTokenParserFuzzTest)") | [.name,.status,.conclusion] | `@tsv`'
echo '== Required branch protection =='
gh api "repos/$repo/branches/main/protection/required_status_checks" || true
gh api "repos/$repo/branches/main/protection/required_pull_request_reviews" || true
gh api "repos/$repo/rules/branches/main" || trueLength of output: 76067
Blocking finding: The A user can activate this action again before Apply the shared helper in this handler. Restore the state when I verified the WeakMap depth and idempotence contract, exact DOM and ARIA restoration, original child-node preservation, contextual inert labels, integration test DOM semantics for I did not approve this PR. The source blocker remains. The exact-head ✏️ Learnings added
You are interacting with an AI system. |
|
@coderabbitai review @opencode-agent @cwl-noema-review Please independently review exact current head |
|
@coderabbitai review @opencode-agent @cwl-noema-review Please independently review exact current head |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
repo='ContextualWisdomLab/clearfolio'
sha='347203d5dc7b6bd4a53877f322bbaba28acb527f'
echo '== Exact commit and pull request =='
printf 'local HEAD: '; git rev-parse HEAD
git show -s --format='commit: %H%nparents: %P%nsubject: %s' "$sha"
gh pr view 264 --repo "$repo" \
--json number,url,state,isDraft,headRefOid,baseRefName,baseRefOid,mergeStateStatus,reviewDecision,statusCheckRollup,latestReviews
echo '== Merge base and changed files =='
base="$(git merge-base "$sha" origin/main)"
printf 'merge-base: %s\n' "$base"
git diff --check "$base" "$sha"
git diff --name-status "$base" "$sha"
echo '== Relevant source maps =='
ast-grep outline src/main/resources/static/assets/viewer/dom-utils.js --items all
ast-grep outline src/main/resources/static/assets/viewer/demo.js --items all
ast-grep outline src/test/js/dom-utils.test.mjs --items all
ast-grep outline src/test/js/demo-integration.test.mjs --items all
echo '== Busy helper =='
nl -ba src/main/resources/static/assets/viewer/dom-utils.js | sed -n '1,260p'
echo '== Async action consumers and accessible labels =='
rg -n -C 12 -P '\b(setBusyState|openJsonDocument|openViewer|openDocumentDetails|Details|Status JSON|Open viewer|aria-label|aria-busy|disabled)\b' \
src/main/resources/static/assets/viewer/demo.js
echo '== Unit and integration tests =='
nl -ba src/test/js/dom-utils.test.mjs | sed -n '1,460p'
nl -ba src/test/js/demo-integration.test.mjs | sed -n '1,520p'
echo '== Maven coverage configuration =='
rg -n -C 14 -P '(dom-utils|node|c8|coverage|line|branch|function|exec-maven)' pom.xml
echo '== Node setup action pin =='
rg -n -C 5 -P '(actions/setup-node@|node-version:)' .github/workflows/ci.yml
echo '== Focused diff and documentation =='
git diff --unified=35 "$base" "$sha" -- \
.github/workflows/ci.yml pom.xml CHANGELOG.md .jules/palette.md \
src/main/resources/static/assets/viewer/demo.js \
src/main/resources/static/assets/viewer/dom-utils.js \
src/test/js/dom-utils.test.mjs src/test/js/demo-integration.test.mjs
echo '== Exact-head check runs =='
gh api "repos/$repo/commits/$sha/check-runs?per_page=100" --paginate \
--jq '.check_runs[] | [.name,.status,.conclusion,.details_url] | `@tsv`'
echo '== Repository protection and rules =='
gh api "repos/$repo/branches/main/protection" || true
gh api "repos/$repo/rules/branches/main" || trueLength of output: 16589 🏁 Script executed: #!/bin/bash
set -euo pipefail
repo='ContextualWisdomLab/clearfolio'
sha='347203d5dc7b6bd4a53877f322bbaba28acb527f'
base="$(git merge-base "$sha" origin/main)"
echo '== Busy helper =='
sed -n '1,180p' src/main/resources/static/assets/viewer/dom-utils.js
echo '== Demo imports, JSON action, viewer actions, and history rendering =='
sed -n '1,160p' src/main/resources/static/assets/viewer/demo.js
sed -n '220,310p' src/main/resources/static/assets/viewer/demo.js
sed -n '400,565p' src/main/resources/static/assets/viewer/demo.js
echo '== Busy helper tests =='
sed -n '1,460p' src/test/js/dom-utils.test.mjs
echo '== Demo integration test =='
sed -n '1,540p' src/test/js/demo-integration.test.mjs
echo '== Maven Node execution and coverage gate =='
rg -n -C 16 -P '(dom-utils|node|c8|coverage|line|branch|function|exec-maven)' pom.xml
echo '== CI Node pin =='
sed -n '1,260p' .github/workflows/ci.yml
rg -n -P 'uses:\s*actions/setup-node@[0-9a-f]{40}|node-version:\s*["'\'']?24' .github/workflows/ci.yml
echo '== Changelog and accessibility documentation diff =='
git diff --unified=30 "$base" "$sha" -- CHANGELOG.md .jules/palette.md
echo '== Full relevant source and test diff =='
git diff --check "$base" "$sha"
git diff --unified=35 "$base" "$sha" -- \
.github/workflows/ci.yml pom.xml \
src/main/resources/static/assets/viewer/demo.js \
src/main/resources/static/assets/viewer/dom-utils.js \
src/test/js/dom-utils.test.mjs src/test/js/demo-integration.test.mjs
echo '== Current exact-head check runs =='
gh api "repos/$repo/commits/$sha/check-runs?per_page=100" --paginate \
--jq '.check_runs[] | [.name,.status,.conclusion] | `@tsv`'
echo '== Pull-request reviews and merge state =='
gh pr view 264 --repo "$repo" --json headRefOid,mergeStateStatus,reviewDecision,latestReviews
echo '== Branch protection and rulesets =='
gh api "repos/$repo/branches/main/protection" || true
gh api "repos/$repo/rules/branches/main" || trueLength of output: 88657
Blocking finding:
Apply the shared helper in this handler. Restore the state when The shared helper otherwise implements the required WeakMap depth counting, idempotent restore callbacks, exact disabled and ARIA restoration, and original child-node preservation. The tests cover the helper contract and the non-empty-history inert-label integration case. Maven enforces 100% line, branch, and function coverage for I did not approve this PR. The You are interacting with an AI system. |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
repo='ContextualWisdomLab/clearfolio'
sha='347203d5dc7b6bd4a53877f322bbaba28acb527f'
echo '== Exact head and pull request state =='
printf 'local HEAD: '; git rev-parse HEAD
git show -s --format='commit: %H%nparents: %P%nsubject: %s' "$sha"
gh pr view 264 --repo "$repo" \
--json number,url,state,isDraft,headRefOid,baseRefName,baseRefOid,mergeStateStatus,reviewDecision,statusCheckRollup,latestReviews
echo '== Merge-base diff and whitespace check =='
base="$(git merge-base "$sha" origin/main)"
printf 'merge-base: %s\n' "$base"
git diff --check "$base" "$sha"
git diff --name-status "$base" "$sha"
echo '== Source outlines =='
ast-grep outline src/main/resources/static/assets/viewer/dom-utils.js --items all
ast-grep outline src/main/resources/static/assets/viewer/demo.js --items all
ast-grep outline src/test/js/dom-utils.test.mjs --items all
ast-grep outline src/test/js/demo-integration.test.mjs --items all
echo '== Busy helper and async action consumers =='
nl -ba src/main/resources/static/assets/viewer/dom-utils.js | sed -n '1,240p'
rg -n -C 12 -P '\b(setBusyState|openJsonDocument|openViewer|fetchJson|Details|Status JSON|Open viewer|aria-label|aria-busy|disabled)\b' \
src/main/resources/static/assets/viewer/demo.js
echo '== Helper and integration tests =='
rg -n -C 12 -P '(setBusyState|nested|restore|textContent|childNodes|replaceChildren|aria-busy|aria-label|disabled|markup)' \
src/test/js/dom-utils.test.mjs src/test/js/demo-integration.test.mjs
echo '== Maven test and coverage contract =='
rg -n -C 14 -P '(dom-utils|node|c8|coverage|line|branch|function|exec-maven)' pom.xml
echo '== Node setup pin =='
rg -n -C 5 -P '(actions/setup-node@|node-version:)' .github/workflows/ci.yml
echo '== Documentation diff =='
git diff --unified=20 "$base" "$sha" -- CHANGELOG.md docs .jules/palette.md
echo '== Exact commit check runs =='
gh api "repos/$repo/commits/$sha/check-runs?per_page=100" --paginate \
--jq '.check_runs[] | [.name,.status,.conclusion,.details_url] | `@tsv`'
echo '== Required review and workflow rules =='
gh api "repos/$repo/branches/main/protection/required_pull_request_reviews" || true
gh api "repos/$repo/branches/main/protection/required_status_checks" || true
gh api "repos/$repo/rules/branches/main" || trueLength of output: 16550 🏁 Script executed: #!/bin/bash
set -u
repo='ContextualWisdomLab/clearfolio'
sha='347203d5dc7b6bd4a53877f322bbaba28acb527f'
base='8e2d36f260395dbd0304abc503d8bd15ffcf8dab'
numbered() {
awk '{ printf "%6d\t%s\n", NR, $0 }' "$1"
}
echo '== Busy helper =='
numbered src/main/resources/static/assets/viewer/dom-utils.js | sed -n '1,220p' || true
echo '== Demo imports and async action handlers =='
numbered src/main/resources/static/assets/viewer/demo.js | sed -n '1,155p' || true
numbered src/main/resources/static/assets/viewer/demo.js | sed -n '215,310p' || true
numbered src/main/resources/static/assets/viewer/demo.js | sed -n '425,555p' || true
echo '== All helper calls and async functions in demo =='
rg -n -C 8 -P '\b(setBusyState|openJsonDocument|openJobDetail|retryActiveJob|refreshKpis|refreshKpiEvidence|loadDemoData|submitDocument)\s*\(' \
src/main/resources/static/assets/viewer/demo.js || true
echo '== DOM helper tests =='
numbered src/test/js/dom-utils.test.mjs | sed -n '1,380p' || true
echo '== Demo module integration test =='
numbered src/test/js/demo-integration.test.mjs | sed -n '1,480p' || true
echo '== Maven Node test and coverage contract =='
rg -n -C 16 -P '(dom-utils|node|c8|coverage|line|branch|function|exec-maven)' pom.xml || true
echo '== Full-SHA Node.js workflow pin =='
rg -n -C 6 -P '(actions/setup-node@|node-version:)' .github/workflows/ci.yml || true
echo '== Focused product diff =='
git diff --unified=30 "$base" "$sha" -- \
src/main/resources/static/assets/viewer/demo.js \
src/main/resources/static/assets/viewer/dom-utils.js \
src/test/js/dom-utils.test.mjs \
src/test/js/demo-integration.test.mjs \
pom.xml .github/workflows/ci.yml || true
echo '== Documentation diff =='
git diff --unified=20 "$base" "$sha" -- CHANGELOG.md docs .jules/palette.md || true
echo '== Current exact-head checks =='
gh api "repos/$repo/commits/$sha/check-runs?per_page=100" --paginate \
--jq '.check_runs[] | select(.name == "Maven test" or .name == "strix" or .name == "Semgrep (multi-language SAST)" or .name == "osv-scan" or (.name | startswith("fuzz"))) | [.name,.status,.conclusion] | `@tsv`' || true
echo '== Pull request reviews and rules =='
gh pr view 264 --repo "$repo" --json headRefOid,mergeStateStatus,reviewDecision,latestReviews,reviewRequests || true
gh api "repos/$repo/branches/main/protection/required_pull_request_reviews" || true
gh api "repos/$repo/branches/main/protection/required_status_checks" || true
gh api "repos/$repo/rules/branches/main" || trueLength of output: 98573
Blocking finding: A user can activate Apply the shared helper in this handler. Restore the state when I verified the following items:
I did not approve this pull request. The You are interacting with an AI system. |
|
@coderabbitai review @opencode-agent @cwl-noema-review Please independently review exact current head |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
repo='ContextualWisdomLab/clearfolio'
sha='6d37f2150d527626b9646fccd0d5bf8327ace7cb'
echo '== Exact commit and pull request =='
printf 'local HEAD: '; git rev-parse HEAD
git show -s --format='commit: %H%nparents: %P%nsubject: %s' "$sha"
gh pr view 264 --repo "$repo" \
--json number,url,state,isDraft,headRefOid,baseRefName,baseRefOid,mergeStateStatus,reviewDecision,statusCheckRollup,latestReviews
echo '== Merge-base diff =='
base="$(git merge-base "$sha" origin/main)"
printf 'merge-base: %s\n' "$base"
git diff --check "$base" "$sha"
git diff --name-status "$base" "$sha"
echo '== Relevant source outlines =='
ast-grep outline src/main/resources/static/assets/viewer/dom-utils.js --items all
ast-grep outline src/main/resources/static/assets/viewer/demo.js --items all
ast-grep outline src/test/js/dom-utils.test.mjs --items all
ast-grep outline src/test/js/demo-integration.test.mjs --items all
echo '== Busy helper =='
nl -ba src/main/resources/static/assets/viewer/dom-utils.js | sed -n '1,260p'
echo '== Viewer action consumers =='
nl -ba src/main/resources/static/assets/viewer/demo.js | sed -n '1,180p'
nl -ba src/main/resources/static/assets/viewer/demo.js | sed -n '215,330p'
nl -ba src/main/resources/static/assets/viewer/demo.js | sed -n '420,580p'
echo '== Busy-state and integration tests =='
nl -ba src/test/js/dom-utils.test.mjs | sed -n '1,480p'
nl -ba src/test/js/demo-integration.test.mjs | sed -n '1,560p'
echo '== Maven test and coverage configuration =='
rg -n -C 14 -P '(dom-utils|node|c8|coverage|line|branch|function|exec-maven)' pom.xml
echo '== Node setup configuration =='
rg -n -C 6 -P '(actions/setup-node@|node-version:)' .github/workflows/ci.yml
echo '== Focused product and documentation diff =='
git diff --unified=35 "$base" "$sha" -- \
.github/workflows/ci.yml pom.xml CHANGELOG.md docs .jules/palette.md \
src/main/resources/static/assets/viewer/demo.js \
src/main/resources/static/assets/viewer/dom-utils.js \
src/test/js/dom-utils.test.mjs \
src/test/js/demo-integration.test.mjs
echo '== Exact-head check runs =='
gh api "repos/$repo/commits/$sha/check-runs?per_page=100" --paginate \
--jq '.check_runs[] | [.name,.status,.conclusion,.details_url] | `@tsv`'
echo '== Available protection and ruleset data =='
gh api "repos/$repo/branches/main/protection" || true
gh api "repos/$repo/rules/branches/main" || trueLength of output: 16618 🏁 Script executed: #!/bin/bash
set -euo pipefail
repo='ContextualWisdomLab/clearfolio'
sha='6d37f2150d527626b9646fccd0d5bf8327ace7cb'
base='8e2d36f260395dbd0304abc503d8bd15ffcf8dab'
numbered() {
awk '{ printf "%6d\t%s\n", NR, $0 }' "$1"
}
echo '== Busy-state helper =='
numbered src/main/resources/static/assets/viewer/dom-utils.js | sed -n '1,240p'
echo '== Demo imports and Status JSON action =='
numbered src/main/resources/static/assets/viewer/demo.js | sed -n '1,170p'
numbered src/main/resources/static/assets/viewer/demo.js | sed -n '215,320p'
numbered src/main/resources/static/assets/viewer/demo.js | sed -n '420,575p'
echo '== Helper tests =='
numbered src/test/js/dom-utils.test.mjs | sed -n '1,460p'
echo '== Production-module integration test =='
numbered src/test/js/demo-integration.test.mjs | sed -n '1,560p'
echo '== Maven execution and coverage thresholds =='
rg -n -C 16 -P '(dom-utils|node|c8|coverage|line|branch|function|exec-maven)' pom.xml
echo '== Node.js setup pin =='
rg -n -C 6 -P '(actions/setup-node@|node-version:)' .github/workflows/ci.yml
echo '== Focused diff and documentation =='
git diff --check "$base" "$sha"
git diff --unified=35 "$base" "$sha" -- \
.github/workflows/ci.yml pom.xml CHANGELOG.md .jules/palette.md docs \
src/main/resources/static/assets/viewer/demo.js \
src/main/resources/static/assets/viewer/dom-utils.js \
src/test/js/dom-utils.test.mjs \
src/test/js/demo-integration.test.mjs
echo '== Current exact-head checks =='
gh api "repos/$repo/commits/$sha/check-runs?per_page=100" --paginate \
--jq '.check_runs[] | select(.name == "Maven test" or .name == "strix" or .name == "Semgrep (multi-language SAST)" or .name == "osv-scan" or (.name | startswith("fuzz"))) | [.name,.status,.conclusion] | `@tsv`'
echo '== Pull request state and available protection data =='
gh pr view 264 --repo "$repo" --json headRefOid,mergeStateStatus,reviewDecision,latestReviews
gh api "repos/$repo/branches/main/protection" || true
gh api "repos/$repo/rules/branches/main" || trueLength of output: 94832 🏁 Script executed: #!/bin/bash
set -euo pipefail
repo='ContextualWisdomLab/clearfolio'
sha='6d37f2150d527626b9646fccd0d5bf8327ace7cb'
echo '== Current exact-head required workflow states =='
gh api "repos/$repo/commits/$sha/check-runs?per_page=100" --paginate \
--jq '.check_runs[]
| select(
.name == "Maven test"
or .name == "strix"
or .name == "Semgrep (multi-language SAST)"
or .name == "osv-scan"
or (.name | startswith("fuzz"))
)
| [.name, .status, .conclusion]
| `@tsv`'
echo '== Pull request head and merge state =='
gh pr view 264 --repo "$repo" \
--json headRefOid,mergeStateStatus,reviewDecision,statusCheckRollup,latestReviews
echo '== Available main branch protection =='
gh api "repos/$repo/branches/main/protection" || true
echo '== Available main branch rulesets =='
gh api "repos/$repo/rules/branches/main" || trueLength of output: 14024
I found no new source-level blocker. The prior I verified these items:
I cannot approve yet. The exact-head You are interacting with an AI system. |
Pull request was converted to draft
|
@coderabbitai review @opencode-agent @cwl-noema-review Please independently review exact current head Exact-head Actions are successful: CI |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
repo='ContextualWisdomLab/clearfolio'
head='718107a7a6eaca15a1f3e33ea7ceebefaf23d85a'
prior='b3453021182e99337e67d8b57a237f7196bd4e53'
echo '== Exact commit and PR state =='
printf 'checkout='; git rev-parse HEAD
git show -s --format='commit=%H%nparents=%P%nsubject=%s' "$head"
gh pr view 264 --repo "$repo" \
--json number,state,isDraft,headRefOid,baseRefName,baseRefOid,mergeStateStatus,reviewDecision,statusCheckRollup,latestReviews
echo '== Exact-head delta =='
git diff --check "$prior" "$head"
git diff --name-status "$prior" "$head"
git diff --unified=35 "$prior" "$head" -- \
src/main/resources/static/assets/viewer/demo.js \
src/test/js/demo-integration.test.mjs
echo '== Relevant source outlines =='
ast-grep outline src/main/resources/static/assets/viewer/dom-utils.js --items all
ast-grep outline src/main/resources/static/assets/viewer/demo.js --items all
ast-grep outline src/test/js/dom-utils.test.mjs --items all
ast-grep outline src/test/js/demo-integration.test.mjs --items all
echo '== Busy-state helper =='
nl -ba src/main/resources/static/assets/viewer/dom-utils.js | sed -n '1,240p'
echo '== Viewer actions and accessible labels =='
nl -ba src/main/resources/static/assets/viewer/demo.js | sed -n '70,170p'
nl -ba src/main/resources/static/assets/viewer/demo.js | sed -n '215,330p'
nl -ba src/main/resources/static/assets/viewer/demo.js | sed -n '420,590p'
echo '== Busy-state unit tests and viewer integration test =='
nl -ba src/test/js/dom-utils.test.mjs | sed -n '1,520p'
nl -ba src/test/js/demo-integration.test.mjs | sed -n '100,330p'
echo '== Maven Node-test and coverage configuration =='
rg -n -C 18 -P '(dom-utils|node|c8|coverage|line|branch|function|exec-maven)' pom.xml
echo '== Workflow inventory, pins, and privileged-workflow indicators =='
fd -t f . .github/workflows | sort
rg -n -C 5 -P '^\s*uses:|actions/setup-node@|node-version:|contents:\s*write|pull-requests:\s*write|persist-credentials:\s*true|reconcile' .github/workflows || true
echo '== PDF.js version contract =='
rg -n -C 3 -P '(pdfjs|pdf\.js|PDF\.js|6\.1\.200)' pom.xml src/main README.md || true
echo '== Exact-head check runs =='
gh api "repos/$repo/commits/$head/check-runs?per_page=100" --paginate \
--jq '.check_runs[] | [.name,.status,.conclusion,.details_url] | `@tsv`'
echo '== Unresolved review threads =='
gh api graphql \
-F owner='ContextualWisdomLab' -F name='clearfolio' -F number=264 \
-f query='
query($owner: String!, $name: String!, $number: Int!) {
repository(owner: $owner, name: $name) {
pullRequest(number: $number) {
reviewThreads(first: 100) {
nodes {
isResolved
comments(first: 1) { nodes { author { login } path line body } }
}
}
}
}
}' \
--jq '.data.repository.pullRequest.reviewThreads.nodes[]
| select(.isResolved == false)
| [.comments.nodes[0].author.login,.comments.nodes[0].path,(.comments.nodes[0].line | tostring),.comments.nodes[0].body]
| `@tsv`' || true
echo '== Protection and ruleset data =='
gh api "repos/$repo/branches/main/protection" || true
gh api "repos/$repo/rules/branches/main" || true
gh api "repos/$repo/rulesets?includes_parents=true" || trueLength of output: 23725 🏁 Script executed: #!/bin/bash
set -euo pipefail
repo='ContextualWisdomLab/clearfolio'
head='718107a7a6eaca15a1f3e33ea7ceebefaf23d85a'
numbered() {
awk '{ printf "%6d\t%s\n", NR, $0 }' "$1"
}
echo '== Busy-state helper =='
numbered src/main/resources/static/assets/viewer/dom-utils.js | sed -n '1,240p'
echo '== Viewer action consumers =='
numbered src/main/resources/static/assets/viewer/demo.js | sed -n '70,170p'
numbered src/main/resources/static/assets/viewer/demo.js | sed -n '215,330p'
numbered src/main/resources/static/assets/viewer/demo.js | sed -n '420,590p'
echo '== Busy-state unit tests =='
numbered src/test/js/dom-utils.test.mjs | sed -n '1,520p'
echo '== Production-module integration test =='
numbered src/test/js/demo-integration.test.mjs | sed -n '100,330p'
echo '== Maven Node-test and coverage configuration =='
rg -n -C 18 -P '(dom-utils|node|c8|coverage|line|branch|function|exec-maven)' pom.xml
echo '== Workflow inventory and relevant references =='
fd -t f . .github/workflows | sort
rg -n -C 5 -P '^\s*uses:|actions/setup-node@|node-version:|contents:\s*write|pull-requests:\s*write|persist-credentials:\s*true|reconcile' .github/workflows || true
echo '== PDF.js version contract =='
rg -n -C 3 -P '(pdfjs|pdf\.js|PDF\.js|6\.1\.200)' pom.xml src/main README.md || true
echo '== Unresolved review threads =='
gh api graphql \
-F owner='ContextualWisdomLab' -F name='clearfolio' -F number=264 \
-f query='
query($owner: String!, $name: String!, $number: Int!) {
repository(owner: $owner, name: $name) {
pullRequest(number: $number) {
reviewThreads(first: 100) {
nodes {
isResolved
comments(first: 1) { nodes { author { login } path line body } }
}
}
}
}
}' \
--jq '.data.repository.pullRequest.reviewThreads.nodes[]
| select(.isResolved == false)
| [.comments.nodes[0].author.login,.comments.nodes[0].path,(.comments.nodes[0].line | tostring),.comments.nodes[0].body]
| `@tsv`' || true
echo '== Current PR state and available protection data =='
gh pr view 264 --repo "$repo" \
--json headRefOid,mergeStateStatus,reviewDecision,latestReviews,statusCheckRollup
gh api "repos/$repo/branches/main/protection" || true
gh api "repos/$repo/rules/branches/main" || true
gh api "repos/$repo/rulesets?includes_parents=true" || trueLength of output: 63105
I found no source-level blocker.
I cannot approve this pull request. GitHub still reports You are interacting with an AI system. |
|
@coderabbitai review @opencode-agent @cwl-noema-review Please independently review exact current head |
🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
repo='ContextualWisdomLab/clearfolio'
head='718107a7a6eaca15a1f3e33ea7ceebefaf23d85a'
prior='b3453021182e99337e67d8b57a237f7196bd4e53'
echo '== Exact commit and pull request state =='
printf 'checkout='; git rev-parse HEAD
git show -s --format='commit=%H%nparents=%P%nsubject=%s' "$head"
gh pr view 264 --repo "$repo" \
--json number,state,isDraft,headRefOid,baseRefName,baseRefOid,mergeStateStatus,reviewDecision,statusCheckRollup,latestReviews
echo '== Exact-head delta and whitespace =='
git diff --check "$prior" "$head"
git diff --name-status "$prior" "$head"
git diff --unified=35 "$prior" "$head" -- \
src/main/resources/static/assets/viewer/demo.js \
src/test/js/demo-integration.test.mjs
echo '== Source outlines =='
ast-grep outline src/main/resources/static/assets/viewer/dom-utils.js --items all
ast-grep outline src/main/resources/static/assets/viewer/demo.js --items all
ast-grep outline src/test/js/dom-utils.test.mjs --items all
ast-grep outline src/test/js/demo-integration.test.mjs --items all
echo '== Busy-state helper =='
nl -ba src/main/resources/static/assets/viewer/dom-utils.js | sed -n '1,250p'
echo '== Viewer action consumers =='
nl -ba src/main/resources/static/assets/viewer/demo.js | sed -n '65,180p'
nl -ba src/main/resources/static/assets/viewer/demo.js | sed -n '210,340p'
nl -ba src/main/resources/static/assets/viewer/demo.js | sed -n '415,600p'
echo '== Unit and integration test assertions =='
nl -ba src/test/js/dom-utils.test.mjs | sed -n '1,540p'
nl -ba src/test/js/demo-integration.test.mjs | sed -n '90,350p'
echo '== Maven test and coverage configuration =='
rg -n -C 18 -P '(dom-utils|node|c8|coverage|line|branch|function|exec-maven)' pom.xml
echo '== Workflow inventory, immutable pins, and privileged indicators =='
fd -t f . .github/workflows | sort
rg -n -C 5 -P '^\s*uses:|actions/setup-node@|node-version:|contents:\s*write|pull-requests:\s*write|persist-credentials:\s*true|reconcile' .github/workflows || true
echo '== Exact-head check runs =='
gh api "repos/$repo/commits/$head/check-runs?per_page=100" --paginate \
--jq '.check_runs[] | [.name,.status,.conclusion,.details_url] | `@tsv`'
echo '== Unresolved review threads =='
gh api graphql \
-F owner='ContextualWisdomLab' -F name='clearfolio' -F number=264 \
-f query='
query($owner: String!, $name: String!, $number: Int!) {
repository(owner: $owner, name: $name) {
pullRequest(number: $number) {
reviewThreads(first: 100) {
nodes {
isResolved
comments(first: 1) { nodes { author { login } path line body } }
}
}
}
}
}' \
--jq '.data.repository.pullRequest.reviewThreads.nodes[]
| select(.isResolved == false)
| [.comments.nodes[0].author.login, .comments.nodes[0].path, (.comments.nodes[0].line | tostring), .comments.nodes[0].body]
| `@tsv`' || true
echo '== Available branch protection and rulesets =='
gh api "repos/$repo/branches/main/protection" || true
gh api "repos/$repo/rules/branches/main" || true
gh api "repos/$repo/rulesets?includes_parents=true" || trueLength of output: 23619 🏁 Script executed: #!/bin/bash
set -euo pipefail
repo='ContextualWisdomLab/clearfolio'
head='718107a7a6eaca15a1f3e33ea7ceebefaf23d85a'
numbered() {
awk '{ printf "%6d\t%s\n", NR, $0 }' "$1"
}
echo '== Busy-state helper =='
numbered src/main/resources/static/assets/viewer/dom-utils.js | sed -n '1,250p'
echo '== Viewer action consumers =='
numbered src/main/resources/static/assets/viewer/demo.js | sed -n '65,180p'
numbered src/main/resources/static/assets/viewer/demo.js | sed -n '210,340p'
numbered src/main/resources/static/assets/viewer/demo.js | sed -n '415,600p'
echo '== Busy-state unit tests =='
numbered src/test/js/dom-utils.test.mjs | sed -n '1,540p'
echo '== Production integration test =='
numbered src/test/js/demo-integration.test.mjs | sed -n '90,350p'
echo '== Maven Node test and coverage configuration =='
rg -n -C 18 -P '(dom-utils|node|c8|coverage|line|branch|function|exec-maven)' pom.xml
echo '== Workflow inventory and relevant references =='
fd -t f . .github/workflows | sort
rg -n -C 5 -P '^\s*uses:|actions/setup-node@|node-version:|contents:\s*write|pull-requests:\s*write|persist-credentials:\s*true|reconcile' .github/workflows || true
echo '== Unresolved review threads =='
gh api graphql \
-F owner='ContextualWisdomLab' -F name='clearfolio' -F number=264 \
-f query='
query($owner: String!, $name: String!, $number: Int!) {
repository(owner: $owner, name: $name) {
pullRequest(number: $number) {
reviewThreads(first: 100) {
nodes {
isResolved
comments(first: 1) { nodes { author { login } path line body } }
}
}
}
}
}' \
--jq '.data.repository.pullRequest.reviewThreads.nodes[]
| select(.isResolved == false)
| [.comments.nodes[0].author.login, .comments.nodes[0].path, (.comments.nodes[0].line | tostring), .comments.nodes[0].body]
| `@tsv`' || true
echo '== Current PR review and merge state =='
gh pr view 264 --repo "$repo" \
--json headRefOid,mergeStateStatus,reviewDecision,latestReviews,statusCheckRollup
echo '== Available branch protection and rulesets =='
gh api "repos/$repo/branches/main/protection" || true
gh api "repos/$repo/rules/branches/main" || true
gh api "repos/$repo/rulesets?includes_parents=true" || true
echo '== Exact-head check state summary =='
gh api "repos/$repo/commits/$head/check-runs?per_page=100" --paginate \
--jq '.check_runs[]
| select(.name == "Maven test" or .name == "strix" or .name == "Semgrep (multi-language SAST)" or .name == "osv-scan" or (.name | startswith("fuzz")) or (.name | startswith("Analyze")))
| [.name,.status,.conclusion]
| `@tsv`'Length of output: 56758
I found no source-level blocker.
I cannot approve this pull request yet. GitHub reports
|
Pull request was converted to draft
|
Dependency-order correction: this PR is now Draft so it cannot auto-merge ahead of authoritative security parent #270. Both slices modify shared After #270 integrates, rebuild or reconcile this same bounded accessibility implementation onto the resulting protected |
718107a to
0326f8f
Compare
Accessibility objective
Improve the Clearfolio viewer demo's async-state and repeated-table-action semantics without introducing HTML parsing or losing original DOM and accessibility state. This clean PR supersedes #162, whose Jules-managed branch repeatedly reintroduced stale workflow pins, duplicated changelog sections, and an unsafe
innerHTMLrestoration recommendation.Changes
Details,Status JSON, andOpen vieweractions.aria-busy, andaria-labelexactly once.textContentand node preservation (Array.from(childNodes)/replaceChildren(...)); never back up or restoreinnerHTML.Detailsand asynchronousStatus JSON; the latter announcesLoading status JSON...while its evidence request is pending.testwith exact 100% line, branch, and function coverage thresholds for the production DOM helper.actions/setup-nodestep.Unreleasedchangelog section and update the accessibility engineering journal.mainwhile preserving the PDF.js integration contract.Exact-head evidence
Exact current head
718107a7a6eaca15a1f3e33ea7ceebefaf23d85ais based on current protectedmainatf3cc09a9838f0f88c81a2ceae22138fab80a2edb. Relative to previously validated headb3453021182e99337e67d8b57a237f7196bd4e53, it changes onlysrc/main/resources/static/assets/viewer/demo.jsandsrc/test/js/demo-integration.test.mjs, with two replacement lines in each file to make and verify the Status JSON pending name operation-specific.Exact-head CI run
30977565425, Security Scan run30977565430, SAST Semgrep run30977565499, and fuzz run30977565442completed successfully. CodeRabbit's exact-head inspection found no source-level blocker and the legacy CodeRabbit status is successful. All review threads are resolved or outdated. The independent repository approval and any still-running required organization check such asstrixremain merge gates.Merge gate
Do not merge until every exact-head required check, including
strixwhen required by the organization ruleset, is successful and an independent approving reviewer with repository write access is present. Every branch-protection, security, accessibility, coverage, and repository-policy gate must remain satisfied for718107a7a6eaca15a1f3e33ea7ceebefaf23d85a.